 /*******************************************************************************
  * Copyright (c) 2000, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.ui.console;

 import org.eclipse.ui.IViewPart;

 /**
  * A view that displays consoles registered with the console manager.
  * <p>
  * Clients are not intended to implement this interface.
  * </p>
  * @since 3.0
  */
 public interface IConsoleView extends IViewPart {
     
     /**
      * Displays the page for the given console in this console view.
      * Has no effect if this console view has a pinned console.
      *
      * @param console console to display, cannot be <code>null</code>
      */
     public void display(IConsole console);
     
     /**
      * Pins this console view. No other console page will be displayed until
      * this console view is un-pinned.
      *
      * @param pin <code>true</code> to pin the current console to the
      * top of the stack, <code>false</code> otherwise
      * @since 3.1
      */
     public void setPinned(boolean pin);
     
     /**
      * Displays and pins the given console in this console view. No
      * other console can be displayed until this console view is
      * un-pinned. Specifying <code>null</code> un-pins this console
      *
      * @param console console to pin, or <code>null</code> to un-pin
      * @deprecated rather than pinning a specific console, a console view is
      * pinned - use <code>setPinned(boolean)</code>
      */
     public void pin(IConsole console);
     
     /**
      * Returns whether this console view is currently pinned to a
      * specific console.
      *
      * @return whether this console view is currently pinned to a
      * specific console
      */
     public boolean isPinned();
     
     /**
      * Returns the console currently being displayed, or <code>null</code>
      * if none
      *
      * @return the console currently being displayed, or <code>null</code>
      * if none
      */
     public IConsole getConsole();
     
     /**
      * Warns that the content of the given console has changed.
      *
      * @param console the console that has changed
      */
     public void warnOfContentChange(IConsole console);
     
     /**
      * Sets the scroll lock state of the currently active console.
      *
      * @param scrollLock <code>true</code> to turn scroll lock on, otherwise <code>false</code>
      * @since 3.1
      */
     public void setScrollLock(boolean scrollLock);
     
     /**
      * Returns the scroll lock state of the currently active console.
      *
      * @return <code>true</code> if scroll lock is on, <code>false</code> otherwise
      * @since 3.1
      */
     public boolean getScrollLock();

 }

